#pragma once

#include "Plugin.h"

#include <map>
using namespace std;

namespace yazi{
namespace engine{

typedef Plugin* (*create_func)();
typedef void (*destroy_func)(Plugin* plugin);

class PluginHelper{
public:
    PluginHelper();
    ~PluginHelper();

    void load(const string& plugin);
    void unload(const string& plugin);
    void* get(const string& plugin, const string& symbol);
    void show();

private:
    map<string, void*> m_plugins;

};


}}